// 将二维数组进行拍平
const testArray = [
  1,2,[11,12],3,[13,[14,15]]
]

const flatArray = (arr) => {
  // 判断本次传入的是否为二维数组，不是则直接返回arr
  const isDeep = arr.some(item => item instanceof Array)
  if (!isDeep) {
    return arr
  }
  // 利用concat方法apply传入当前一层的arr进行一次拍平
  const res = Array.prototype.concat.apply([], arr)
  // 递归调用，多层拍平
  return flatArray(res)
}

console.log(flatArray(testArray))
